註冊 AWS 會員
- 填妥個人資料,地址要轉換成英文地址,可以利用中文地址英譯系統
- 填寫信用卡資訊(用的是免費方案,但是註冊都需要填寫信用卡資訊)
- 驗證手機(會發送簡訊做驗證)
進入主控台
註冊完成後,進入「免費方案」的主控台
選擇「啟動虛擬主機」(使用 EC2)
選擇「Ubuntu Server 18.04 LTS (HVM), SSD Volume Typ」
選有「綠色」標章的,免費方案
從 step3 開始,一路按「Next」,按到看到 step6 出現就煞住。
step6 這邊要按「Add Rule」,新增兩個欄位,選擇「HTTP 跟 HTTPS」,後面的資料它會自己幫你帶入,新增完之後就可以按下右下角的「 Review and Launch 」
這裡會跟你確認剛剛做的設定,按下右下角「 Launch 」進入下一步
接著會跳出這個選擇私鑰的視窗
我們要建立一個新的,選則「create a new key pair」,自行輸入底下的名稱,按下「Download Key Pair」下載下來的檔案要保存起來
下載好之後就可以按「 Launch Instances」來啟動設置
右下角「View Instances」回到管理介面
這邊可以看到你的 Server 已經在啟動狀態了,把畫面往右拉,找到「IPv4 Public IP」 把這組 IP 記起來就完成了
連線囉!
畫面上方,有一個 Connect 的按鈕,裡面有讓你從 CLI 連線的兩行指令
chmod 400 <私鑰檔案路徑>
ssh -i "<私鑰檔案路徑>" ubuntu@ec2-< IPv4 位置>.us-east-2.compute.amazonaws.com
輸入完成看到下面這個畫面就代表連線成功囉~
設定 LAMP:
- 更新 ubuntu 的系統
跳出訊息,是否安裝?或佔用空間 xxx,記得輸入:y$ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
(會跳出紫色選項,選擇 keep the local version currently installed) - 安裝 Tasksel
跳出訊息,是否安裝?或佔用空間 xxx。輸入:y$ sudo apt install tasksel
- 用 Tasksel 下載 lamp-server
(會跑一個下載中的紫色框)$ sudo tasksel install lamp-server
這時候,就可以到瀏覽器,輸入 IP 位置,看看剛出生的伺服器
設定 phpmyadmin
- 下載 phpmyadmin
$ sudo apt install phpmyadmin
- 連接 apache2(按空白鍵,有顯示*字號,再按 Enter)
- 設定密碼(設定完成後,按下方向鍵,OK 字樣會反紅,就可以按 Enter 繼續)
- 完成密碼設置
設置密碼
- 改變 phpmyadmin 登入的設定,改成可以用密碼登入
輸入:$ sudo mysql -u root mysql
離開 sql 指令$ UPDATE user SET plugin='mysql_native_password' WHERE User='root'; $ FLUSH PRIVILEGES;
$ exit
- 設定 root 的密碼
$ sudo mysql_secure_installation
- 是否設定密碼? $ y
這時候會跳出選擇密碼強度,然後才設定密碼
有三個選項,建議直接選 0(選了 1 之後中英文大小寫+符號混用還要一定的長度)
所以除非是需要很注重安全性,否則選 0 之後繼續 - 輸入符合規定的密碼。
直接輸入 預設置密碼 這時候密碼不會顯示所以不要認為沒有輸入成功。
確定設這個密碼嗎? $ y
幾個設定的問題都可以選 yes
最後會出現 All Done! - 就可以在瀏覽器輸入自己的 IPv4/phpmyadmin 就看到登入畫面了
帳號:root
密碼:前面設定的密碼
故障排除
這邊我嘗試在瀏覽器輸入自己的 IPv4/phpmyadmin,會出現 404 Not Found 頁面
在 Google 下關鍵字「ec2 phpmyadmin not found」搜尋有找到解決方式:
- 方法1:(我用這個解決的)
The requested URL /phpmyadmin was not found on this server.
在 CLI 下這段命令,
再重新於瀏覽器上刷新 phpmyadmin 頁面sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
- 方法2:
// link configure file to apache $ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf // restart apache $ sudo /etc/init.d/apache2 restart
- 方法3: 關於phpmyadmin的問題
重新設定你的「phpmyadmin」:sudo dpkg-reconfigure phpmyadmin
排除故障後,就可以看到登入畫面了
測試檔案
現在來測試把檔案放上去。輸入 cd .. 兩次,退到根目錄底下,
可以用 ls 找到 var 資料夾。
然後連進去
cd var/www/html
嘗試 touch 裡面的檔案
touch index.php
會發現權限不夠,所以要來修改一下權限
$ sudo chown ubuntu /var/www/html
修改完成後就可以成功的編輯檔案了,在這邊先用 vim 測試改成 hello, world
vim index.php
<?php
echo 'hello, world';
?>
接著可以到瀏覽器上,在網址輸入
IPv4/index.php
可以成功看到剛剛輸入的 hello, world 囉
設定域名
先連至 gendi.net 註冊帳號(記得進入信箱收取驗證信)
註冊完成後,我們要開始購買網域,點選購物,可以看到下面這個畫面,我們要選「域名」
輸入自己想要的域名,並且加入購物車之後,就要來填寫購買資訊了
進入結帳流程之前,要先同意所有合約,「若是有折扣碼,可以在此填寫」
這樣就完成囉,官方會在交易完成後再寄送一封認證信到信箱,要記得去驗證
接下來就要設定域名了,回到首頁之後重新登入,就可以看到下面這個畫面,點選左邊的「域名」
在區域檔紀錄底下,把 A 的 IPv4 改成 AWS 的 IP 就可以囉
恭喜你成功部署好自己的 Server ,只要在網址打上
<域名>/index.php
就可以看到之前設定的 hello, world 了!
最後一步!開始將寫好的程式部署到 Server
放檔案的方式有很多種,目前先嘗試用熟悉的 GitHub 來操作看看
- 在 GitHub 上面開設一個 repository
- 把 repository 的網址複製起來
- 回到本地端,把要上傳的資料獨立到同一個資料夾
(建議先上傳一個簡單的 hello world 程式,並且先把 .gitignore 的檔案傳上去,等成功了之後再來上傳其他完整的程式。若想直接上傳完整程式,一定要先把 conn.php 拿掉,因為 .gitignore 檔案還沒上傳之前,並不會讓 conn.php 被忽略) - CLI,切換到該資料夾,輸入:
git remote add origin [GitHub 網址]
- 接著按照下面步驟把資料弄上新的 repository:
- 開分支 git branch "branch-name"
- 切到該分支 git branch "branch-name"
- 上傳 git commit -am "test"
- git push origin branch-name
- 然後 GitHub 上面 marge。
回到 server 端
在 CLI 處於 var/www/html 的情況下,把 repository 整個 clone 下來
git clone <GitHub 網址>
(如果剛剛是直接把忽略 conn.php 的完整程式上傳,此時需要手動在 CLI 把 conn.php 建立回去)
成功上傳伺服器之後。就可以通過 域名/對應路徑/index.php 看看網頁是否可以正常運行啦。